package main

func main() {
	// 简述线性数据结构和哈希表优劣
	// 线性数据结构（数组、链表、切片等）
	/*
		优点：
			1、内存连续（数组/切片）：缓存友好，访问速度快
			2、顺序访问高效：适合遍历操作
			3、简单易用：实现和理解都比较简单
			4、预测性性能：操作时间复杂度稳定
			5、有序存储：天然保持元素顺序
		缺点:
			1、查找效率低：平均时间复杂度 O(n)
			2、插入删除慢（数组）：需要移动元素，平均 O(n)
			3、固定大小（数组）：需要预先分配或动态扩容
			4、内存浪费：可能存在未使用的预留空间
	*/
	//  哈希表（Map、Dictionary）
	/*
		优点:
			1、极速查找：平均时间复杂度 O(1)
			2、快速插入删除：平均 O(1) 时间复杂度
			3、灵活性：无需预先知道数据规模
			4、键值对结构：适合关联性数据存储
			5、自动去重：键的唯一性特性
		缺点:
			1、内存开销大：需要维护哈希桶和额外空间
			2、无序存储：元素存储顺序不确定
			3、哈希冲突：可能影响性能
			4、缓存不友好：内存分散，缓存命中率低
			5、最坏情况性能差：可能退化为 O(n)
	*/

	/*
		线性数据结构
			需要保持元素顺序
			频繁遍历所有元素
			内存使用需要优化
			数据量相对固定
			需要随机访问（数组)
	*/

	/*
		哈希表
			需要快速查找元素
			需要频繁插入删除
			数据规模不确定
			需要键值对存储
			需要去重功能
	*/

	// 特性	线性结构	哈希表
	// 查找性能	O(n)	O(1)
	// 插入性能	O(n)	O(1)
	// 内存效率	高	低
	// 顺序保持	是	否
	// 适用数据量	小到中	中到大
	// 建议：根据具体业务需求选择，小数据量或需要顺序时用线性结构，大数据量且需要快速查找时用哈希表。
}
